1. Field of the Invention
The invention relates generally to magnetic random access memories (MRAMs), with magneto tunnel junctions (MTJs) and, more particularly, to a method and apparatus for reading from and writing to the MRAMs.
2. Description of the Prior Art
Magnetic random access memory (MRAM) is a type of non-volatile memory in which magnetization of magnetic layers in MTJs switches between parallel (corresponding to a low resistance state) and anti-parallel (corresponding to a high resistance state). An MRAM typically includes a magneto tunnel junction (MTJ), the resistance of which defines the logical state the MRAM cell.
An MTJ is considered to have a logical state of zero or one depending on the resistance value across the MTJ. In particular, the magnetic direction of the free layer of the MTJ is parallel or anti-parallel relative to a fixed or reference layer when data is being saved into or read from the MTJ. When the free layer has a magnetization that is parallel to that of the fixed layer, the resistance of the MTJ is less than when the magnetization of the free layer is anti-parallel relative to that of the fixed layer.
Therefore, the data stored in an MTJ is considered to be logical state ‘0’ when the resistance of the MTJ is low and the MTJ is considered to be logical state ‘1’ when the resistance of the MTJ is high. It is noted that the logical states may be reversed in some designs where lower resistance is considered to be logical state ‘1’ and higher resistance is considered to be logical state ‘0’.
The resistance of a MTJ is inversely proportional to the area of the MTJ. Thus, in a large memory array that is made of MTJs or MRAMs, the MTJ resistance varies across the die on which the MTJ is formed follows a Gaussian distribution. In a large memory array, the low resistance (R) values of the MTJs generally have an average resistance value represented by “Rlavg” with variations specified by the notation “Srl”. In the same memory array, the programmed MTJs have a higher average resistance value represented by “Rhavg”, and also higher variations specified by the notation “Srh”. To read the MTJs, typically data is extracted by comparing the resistance value of the MTJ to the resistance value of a reference MTJ that has a resistance value defined by the following equation:Rref=(Rl3sig+Rh3sig)/2  (1)Where Rl3sig is the resistance value of the Rlow, 3 sigma higher than the Rlavg and Rh3sig is the resistance value of the Rhigh 3 sigma lower than the Rhavg. These are shown in FIG. 1 as Rlr and Rhr and Rref. The choice of 3 sigma is optional, one can use 5 sigma or higher.FIG. 1 shows a graph 10 of the Gaussian distribution of Rlow at 12 and Rhigh at 14. The x-axis of the graph 10 represents resistance values and the y-axis thereof represents the number of resistances (or MTJs). The Rlow 12 and Rhigh 14 are shown to overlap at 16. This overlap, which is defined in the area between the Rhr 20 and the Rlr 18, causes errors when reading data. “Rhr” 20 is the lowest resistance value a high reference resistor can take on and “Rlr” 18 is the lowest resistance value a low reference resistor can take on.
The MTJs with higher resistances than Rref, are considered to have a logical state of ‘1’ and the MTJs with lower resistance (R), that is less than Rref, are considered to have a logical state of ‘0’.
If the two Gaussian distributions, shown in FIG. 1, are sufficiently apart where no overlap or tolerably little overlap occurs, employing only one reference is sufficient for sensing (reading) and determining the MTJ resistance values, but the sensing becomes difficult when the Rlow and Rhigh distributions are too close and/or overlap. The latter situation clearly leads to intolerable errors in reading or sensing the MTJs.
What is therefore needed is a reliable method and apparatus for writing to and reading from MRAMs that include MTJs.